package com;

import com.util.NetUtils;
import com.util.PropKit;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.text.SimpleDateFormat;
import java.util.Date;


public class Main {

	private static Logger log = LoggerFactory.getLogger(Main.class);

	public static void main(String[] args) {

		log.info("当前时间："+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));

		PropKit.use("app.properties");

		int webAppPort = PropKit.getInt("webAppPort");
		String webAppContextPath = PropKit.get("webAppContextPath");
		String warLocation = PropKit.get("warLocation");
		
		startForWebApp(webAppPort,webAppContextPath,warLocation);
	}
	

	
	/**
	 * 针对一个Web应用
	 * 
	 * @see 注意resourceBase参数指向的应用所依赖的jar必须全部存放在其WebRoot\WEB-INF\lib目录中
	 * @see 否则应用启动后,访问时会由于在lib中找不到jar而报告java.lang.ClassNotFoundException
	 * @param port
	 *            访问服务器的端口
	 * @param contextPath
	 *            访问服务器的地址
	 * @param warLocation
	 *            war包位置
	 */
	private static void startForWebApp(int port, String contextPath,
			String warLocation) {
		Server server = new Server(port);
		WebAppContext context = new WebAppContext();
		// 此时访问路径就是http://127.0.0.1:port/contextPath
		context.setContextPath("/"+contextPath);
		context.setMaxFormContentSize(-1);
		context.setMaxFormKeys(-1);
//		context.setWar("D:\\Project\\GitProject\\ThirdProject\\zkClient\\target\\zkClient-1.0-SNAPSHOT.war");
		context.setWar(warLocation);
		server.setHandler(context);
		server.setStopAtShutdown(true);
		try {
			server.start();
		} catch (Exception e) {
			log.error("启动Jetty时发生异常!",e);
		}
		if (server.isStarted()) {
			log.info("web服务启动成功，访问地址 --> http://"+ NetUtils.getLocalHost()+":"+port+"/"+contextPath);
		}
	}

}
